/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package libreriaTicket.dao;

import conexion.BD;
import conexion.SqlFormat;
import java.util.ArrayList;
import libreriaTicket.entity.Comuna;
import libreriaTicket.entity.Evento;
import libreriaTicket.entity.Recinto;
import libreriaTicket.entity.Region;
import libreriaTicket.entity.TipoEvento;

/**
 *
 * @author Duoc
 */
public class DaoEvento {

    public static boolean sqlInsert(Evento evento) {
        try {
            SqlFormat sql = new SqlFormat(SqlFormat.INSERTAR, "evento");
            sql.addField("nombre", evento.getNombre());
            sql.addField("fecha", "CURDATE()");
            sql.addField("tipo_evento", evento.getTipoEvento().getIdTipoEvento());
            sql.addField("precio", evento.getPrecio());

            String sqli = "insert into evento(nombre,fecha,tipo_evento,precio) values('"+evento.getNombre()+"',curdate(),"+evento.getTipoEvento().getIdTipoEvento()+","+evento.getPrecio()+")";
            return BD.getInstance().sqlEjecutar(sqli);

        } catch (Exception e) {
        }
        return false;
    }

    public static boolean sqlUpdate(Evento evento) {
        try {

            SqlFormat sql = new SqlFormat(SqlFormat.INSERTAR, "evento");
            sql.addField("nombre", evento.getNombre());
            sql.addField("fecha", "CURDATE()");
            sql.addField("tipo_evento", evento.getTipoEvento().getIdTipoEvento());
            sql.addField("precio", evento.getPrecio());            
            sql.where("id", evento.getIdEvento());
            
            return BD.getInstance().sqlEjecutar(sql.crearInstruccion());


        } catch (Exception e) {
        }
        return false;
    }

    public static boolean sqlDelete(Evento evento) {
        try {
            SqlFormat sql = new SqlFormat(SqlFormat.ELIMINAR, "evento");
            sql.where("id", evento.getIdEvento());

            return BD.getInstance().sqlEjecutar(sql.crearInstruccion());


        } catch (Exception e) {
        }
        return false;
    }
    
    public static ArrayList<Evento> sqlSelectAll()
    {
        ArrayList<Evento> eventos = new ArrayList<Evento>();
        try {
            
          
            BD.getInstance().sqlQuery(SqlFormat.SelectAll("evento"));
            while(BD.getInstance().sqlFetch()) {
                Evento evento = new Evento();
                evento.setIdEvento(Integer.parseInt(BD.getInstance().getString("id")));
                evento.setNombre(BD.getInstance().getString("nombre"));
                evento.setFechaEvento(BD.getInstance().getString("fecha"));
                evento.setPrecio(BD.getInstance().getInt("precio"));
                evento.setTipoEvento(new TipoEvento(BD.getInstance().getInt("tipo_evento")));
                evento.setHora(BD.getInstance().getString("hora"));
                evento.setImagen(BD.getInstance().getString("imagen"));
                
                eventos.add(evento);
            }
            return eventos;
        } catch (Exception e) {
        }
        return null;
    }
    
    public static ArrayList<Evento> sqlEventoTipo(TipoEvento tipoEvento){
        try {
            ArrayList<Evento> eventos = new ArrayList<Evento>();
            String sql = "select * from evento where tipo_evento = " + tipoEvento.getIdTipoEvento();
             BD.getInstance().sqlQuery(sql);
            while (BD.getInstance().sqlFetch()) {
                Evento evento = new Evento();
                evento.setIdEvento(Integer.parseInt(BD.getInstance().getString("id")));
                evento.setNombre(BD.getInstance().getString("nombre"));
                evento.setFechaEvento(BD.getInstance().getString("fecha"));
                evento.setPrecio(BD.getInstance().getInt("precio"));
                evento.setTipoEvento(new TipoEvento(BD.getInstance().getInt("tipo_evento")));
                evento.setImagen(BD.getInstance().getString("imagen"));
                evento.setHora(BD.getInstance().getString("hora"));
                
                eventos.add(evento);
                
            }
            return eventos;
            
            
        } catch (Exception e) {
        }
        
        return null;
    }
    
    public static Evento sqlSelect(Evento evento) {

        try {
            Evento evento2 = new Evento();
            SqlFormat sql = new SqlFormat(SqlFormat.SELECCIONAR, "evento");
            sql.where("id", evento.getIdEvento());

            BD.getInstance().sqlQuery(sql.crearInstruccion());
            if (!BD.getInstance().sqlFetch()) {
                return null;
            }

            evento2.setIdEvento(Integer.parseInt(BD.getInstance().getString("id")));
            evento2.setNombre(BD.getInstance().getString("nombre"));
            evento2.setFechaEvento(BD.getInstance().getString("fecha"));
            evento2.setPrecio(BD.getInstance().getInt("precio"));
            evento2.setTipoEvento(new TipoEvento(BD.getInstance().getInt("tipo_evento")));
            evento2.setImagen(BD.getInstance().getString("imagen"));
            evento2.setHora(BD.getInstance().getString("hora"));

            
            return evento2;
        } catch (Exception e) {
        }
        return null;
    }
}
